package com.serializable;

import java.io.Serializable;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author wufei
 * @date 2018/3/7/007 21:48
 */
public class SerializableSingle implements Serializable{

    private static Map<String,Object> map = new ConcurrentHashMap<>();

    private SerializableSingle(){

    }

    private static final SerializableSingle single = null;

    public static Object getNewInstance(String name){

        Object o = map.get(name);
        if (o == null) {
            SerializableSingle serializableSingle = new SerializableSingle();
            map.put(serializableSingle.getClass().getName(), serializableSingle);
            return serializableSingle;
        }else {
            return o;
        }
    }

    private Object readResolve(){
        return map.get(SerializableSingle.class.getName());
    }
}
